package com.page.common.vo;

import java.io.Serializable;
import java.util.Vector;

import com.page.exception.Exception;
import com.page.exception.ExceptionUtil;

/**
 * 字符串数组对象
 * 
 * @Package com.net263.ccap.common.vo
 * @File TokenVO.java
 * @author shuxin.zheng@net263.com
 * @date 2014-9-17 下午01:43:25
 */
public class TokenVO implements Serializable {

    private static final long serialVersionUID = 1L;
    private Vector<String> vector = new Vector<String>();

    /**
     * 构造函数，要求传入的变参列表非空，至少得有一个参数，否则内部抛异常
     * 
     * @param strings 变参列表
     */
    public TokenVO(String... strings) {
        if (strings.length == 0)
            throw new Exception(ExceptionUtil.ARRAY_OVERFLOW, "null array");
        
        for (String string : strings) {
            vector.add(string.trim());
        }
    }

    /**
     * 获得第一个（索引下标为 0）字符串对象
     * 
     * @return {String} 因为构造函数要求传入非空列表，所以此处返回非空字符串对象
     */
    public String getFirst() {
        return get(0);
    }

    /**
     * 返回指定下标位置的字符串对象，当输入的下标越界时返回 null
     * 
     * @param pos {int} 下标位置
     * @return {String} 返回指定下标位置的字符串对象，当下标越界时返回 null
     */
    public String get(int pos) {
        if (pos < 0 || pos >= vector.size())
            return null;
        return vector.elementAt(pos);
    }

    /**
     * 返回字符串数组的大小
     * 
     * @return {int}
     */
    public int size() {
        return vector.size();
    }

    /**
     * 返回存放字符串对象的数组对象
     * 
     * @return {Vector<String>}
     */
    public Vector<String> getVector() {
        return vector;
    }

    // ///////////////////////////////////////////////////////////////////////

    public static void main(String[] args) {
        TokenVO tokenVO = new TokenVO();
        System.out.println("first: " + tokenVO.getFirst());
    }

}
